1. Field of the Invention
The invention relates to digital vector generators, specifically as applied to electronic displays.
2. Description of the Prior Art
Digital vector generators are utilized in the art in various applications, including electronic displays. For example, they are used for: raster scanned or caligraphically generated cathode ray tube displays; X-Y plotters; numerically controlled machines; and robotics. Known vector generation procedures utilize either open-loop or closed-loop curve generation techniques. Open-loop techniques are often advantageous because various vector instruction formats may be incorporated which share the same basic hardware. For example, with open-loop techniques, both polar coordinate and rectangular coordinate vector formats can be effectively utilized. The execution of polar coordinate vectors can generally simplify the rotation of symbology. Additionally, the open-loop algorithm permits achieving constant velocity vector generation, independent of vector angle. Constant velocity vector generators can provide for the generation of dotted and dashed vector patterns that do not change as a function of vector angle.
For the rectangular coordinate system, two-dimensional open-loop vector generation is generally implemented utilizing two accumulators for the X and Y coordinate axes, respectively, of the vector generation system. To generate a vector, the accumulators are loaded with the X and Y coordinates of the initial point of the vector. The vector is then generated by adding the incremental values of DX/N and DY/N to the respective accumulators during each of N clock cycles, where DX is the X component of the vector and DY is the Y component thereof. Generally, each accumulator has an integer portion and a fractional portion, where the integer portions provide the vector generator outputs that select the picture elements (pixels) to be illuminated for displaying the vector. This technique of vector generation is denoted as open-loop negative integration. Although the subject invention will be described for the application of two-dimensional vector generation, open-loop vector generation is easily extended to three-dimensional space by the addition of a third accumulator. It should be appreciated that the improvements of the invention are also applicable to three-dimensional vector generation.
Open-loop integration generally utilizes either the tangent algorithm or the sine/cosine algorithm. In the tangent algorithm, the accumulator corresponding to the axis of the largest vector component is advanced by one integer unit or every clock cycle and the other accumulator is advanced by the tangent of the vector angle. In the sine/cosine algorithm, the X and Y coordinates are advanced on each clock cycle by the cosine and sine, respectively, of the vector angle. An example of a tangent algorithm vector generator that may be configured in accordance with the present invention is disclosed in U.S. Pat. No. 4,115,863; issued Sept. 19, 1978; entitled "Digital Stroke Display with Vector, Circle and Character Generation Capability." An example of a sine/cosine vector generator that may be configured in accordance with the present invention is disclosed in U.S. Pat. No. 4,481,605; issued Nov. 6, 1984; entitled "Display Vector Generator Utilizing Sine/Cosine Accumulation". Said U.S. Pat. Nos. 4,115,863 and 4,481,605 are incorporated herein by reference.
With vector generation utilizing open-loop integration, truncation errors in the incremental values that are added to the X and Y accumulators can result in an accumulation of errors as vectors are generated. Utilizing open-loop integration results in a compromise to the accuracy of the displayed symbology causing a degradation in display quality. Such degradation in accuracy results in the illumination of pixels that are not located on the mathematical locus of the desired vector, resulting in, for example, line ends that do not meet and open curves that should be closed. The truncation errors that result in these display anomolies are inherent in digital vector generation apparatus utilizing open-loop integration.
Truncation errors can be eliminated by utilizing a closed-loop vector algorithm which is inherently self-correcting and in which the maximum error is inherently bounded. In closed-loop vector generation, the error does not increase with vector length. The closed-loop algorithms, are however, incompatible with vector instructions that utilize the polar coordinate system to simplify the rotation of symbology. The inherent advantage of polar vectors for the rotation of symbology can outweigh the error problems due to truncation and coordinate transformation. Additionally, as discussed above, constant velocity vector generation cannot readily be achieved utilizing a closed-loop algorithm.